package cn.net.dpi.shp.model.dto;


import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 道路向量 DTO
 *
 * @author ake
 * @since 2024-12-27
 */
@Getter
@Setter
@Schema(description = "道路向量传输层对象")
public class HdLinkDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "道路编号,主键，全国唯")
    private String linkId;

    @Schema(description = "车道组编号,外键，引用 hd_lane_group 表lane_group_id")
    private String groupId;

    @Schema(description = "图幅编号,全国唯一")
    private String meshId;

    @Schema(description = "行政区划代码,全国唯一")
    private String adminCode;

    @Schema(description = "起点编号,外键，引用 hd_link_node 表 node_id")
    private String snodeId;

    @Schema(description = "终点编号,外键，引用 hd_link_node 表 node_id")
    private String enodeId;

    @Schema(description = "通行方向1：同方向2：逆方向3：双方向")
    private Long direction;

    @Schema(description = "车道数从 1 开始的正整数")
    private Long lanenum;

    @Schema(description = "道路功能等级1：高速2：城市快速路3：一般道路")
    private Long linkFc;

    @Schema(description = "道路经路层等级")
    private Long linkLevel;

    @Schema(description = "道路官方名")
    private String offName;

    @Schema(description = "道路别名")
    private String anotherNm;

    @Schema(description = "道路曾用名")
    private String formerNm;

    @Schema(description = "道路标准编号")
    private String linkNum;

    @Schema(description = "道路长度单位：m，保留两位小数")
    private Double length;

    @Schema(description = "收费标识1：不收费2：收费")
    private Long chargeFlg;

    @Schema(description = "上下行标识1：否2：是")
    private Long separate;

    @Schema(description = "限速类型1：可变限速2：固定限速3：条件限速4：理论限速可多选，用“丨”分开。")
    private Long speedType;

    @Schema(description = "最高限速单位：km/h")
    private String speedMax;

    @Schema(description = "最低限速单位：km/h")
    private String speedMin;

    @Schema(description = "道路左边界编号")
    private String lBordId;

    @Schema(description = "道路右边界编号")
    private String rBordId;

    @Schema(description = "路面材质1：沥青2：水泥混凝土3：砖路面4：石板5：沙石6：鹅卵石7：木质路面8：土质路面9：环氧地坪99：其他")
    private Long material;

    @Schema(description = "道路类型")
    private String linkType;

    @Schema(description = "更新时间")
    private String time;

    private Object geometry;

    private Long fileId;
}
